#install.packages("webshot")
webshot::install_phantomjs()
## phantomjs has been installed to C:\Users\Mafer\AppData\Roaming\PhantomJS
#En tiempo de Norte América, el eclipse total inició el 21 de agosto del 2017 a las 18:26:40.
#Este mismo evento, sucederá un Saros después.
#Un Saros equivale a 223 Synodic Months
#Un Synodic Month equivale a 29 días con 12 horas, con 44 minutos y 3 segundos.
library(lubridate)
## Warning: package 'lubridate' was built under R version 3.5.3
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
## 
##     date
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.5.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:lubridate':
## 
##     intersect, setdiff, union
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#OlsonNames()
inicio <- "21/08/2017 18:26:40, tz = US/Pacific"
inicio <- dmy_hms(inicio)
inicio
## [1] "2017-08-21 18:26:40 UTC"
synodic_month <- days(29) + hours(12) + minutes(44) + seconds(3)
synodic_month
## [1] "29d 12H 44M 3S"
saros <- synodic_month * 223
saros
## [1] "6467d 2676H 9812M 669S"
proximo <- inicio + saros
proximo
## [1] "2035-09-02 02:09:49 UTC"
library(readr)
library(lubridate)
library(dplyr)
library(ggplot2)
library(plotly)
## Warning: package 'plotly' was built under R version 3.5.3
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
datos <- read_csv(file = "lab5/data.csv")
## Parsed with column specification:
## cols(
##   `Fecha Creación` = col_character(),
##   `Hora Creación` = col_time(format = ""),
##   `Caller ID` = col_integer(),
##   Cod = col_character(),
##   Email = col_integer(),
##   SMS = col_integer(),
##   Call = col_integer(),
##   `Fecha Final` = col_character(),
##   `Hora Final` = col_time(format = "")
## )
datos$`Fecha Creación` <- dmy(datos$`Fecha Creación`)
datos$`Fecha Final` <- dmy(datos$`Fecha Final`)
#1. ¿En qué meses existe una mayor cantidad de llamadas por código?
datos %>% filter(Call == 1) %>% 
  mutate(mes = month(`Fecha Creación`, label = T)) %>% 
  group_by(mes) %>% summarise(n = sum(Call)) %>% 
  arrange(desc(n)) %>%
  plot_ly(x= ~mes, y=~n, type = 'bar')
#El mes de marzo es en el que más llaman con 497 llamadas
#2. ¿Qué día de la semana es el más ocupado?
datos %>% 
  mutate(weekday = wday(`Fecha Creación`, label = T)) %>% 
  group_by(weekday) %>% summarise(count = n()) %>%
  plot_ly(x= ~weekday, y=~count, type = 'bar')
#El día más ocupado es el domingo
#3.¿Qué mes es el más ocupado?
datos %>% 
  mutate(mes = month(`Fecha Creación`, label = T)) %>% 
  group_by(mes) %>% summarise(cod = n()) %>% 
  arrange(desc(cod)) %>% 
  plot_ly(x= ~mes, y=~cod, type = 'bar')
#El mes más ocupado es marzo donde se registraron 22708 llamadas, emails y mensajes 
#4.¿Existe una temporalidad en la cantidad de llamadas?
datos %>% filter(Call == 1) %>% 
  mutate(mes = month(`Fecha Creación`, label = T)) %>% 
  group_by(mes) %>% summarise(count = n()) %>%
  plot_ly(x= ~mes, y=~count, type = 'bar') 
datos %>% filter(Call == 1) %>% 
  mutate(weekdays = wday(`Fecha Creación`, label = T)) %>% 
  group_by(weekdays) %>% summarise(count = n()) %>%
  plot_ly(x= ~weekdays, y=~count, type = 'bar')
#No hay temporalidad ni por mes ni por día
#5. ¿Cuántos minutos dura la llamada promedio?
datos_Call <- datos %>% filter(Call == 1)
datos_Call$Tiempo <- difftime(datos_Call$`Hora Final`, datos_Call$`Hora Creación`, units = "mins")
mean(datos_Call$Tiempo)
## Time difference of 7.766638 mins
Positivo <- datos_Call %>%  filter(datos_Call$Tiempo >= 0)
mean(Positivo$Tiempo)
## Time difference of 14.54774 mins
#El promedio es de 7.76 minutos
#Pero hay un problema cuando se llega a las 12 porque lo toma como 00 y no como 24 entonces no calcula bien la differencia
#El promedio tomando en cuenta eso es 14.54 min
#Realice una tabla de frecuencias con el tiempo de llamada.
frecuencia <- data.frame(datos_Call %>% 
                           select(Tiempo) %>% filter(Tiempo >=0)%>%
                           group_by(Tiempo) %>%
                           summarise(cantidad = n()))
frecuencia
##     Tiempo cantidad
## 1   0 mins      221
## 2   1 mins      211
## 3   2 mins      173
## 4   3 mins      195
## 5   4 mins      193
## 6   5 mins      184
## 7   6 mins      193
## 8   7 mins      196
## 9   8 mins      209
## 10  9 mins      165
## 11 10 mins      189
## 12 11 mins      196
## 13 12 mins      168
## 14 13 mins      163
## 15 14 mins      203
## 16 15 mins      187
## 17 16 mins      180
## 18 17 mins      176
## 19 18 mins      184
## 20 19 mins      190
## 21 20 mins      177
## 22 21 mins      203
## 23 22 mins      174
## 24 23 mins      189
## 25 24 mins      183
## 26 25 mins      174
## 27 26 mins      156
## 28 27 mins      173
## 29 28 mins      158
## 30 29 mins      171
## 31 30 mins      164
frecuencia %>% plot_ly(x= ~Tiempo, y = ~cantidad, type= "bar")